#pragma once

#include "drawableactor.h"
#include <osg/TextureCubeMap>
#include <QMap>

namespace VrDataCore
{
	class VRDATACORE_EXPORT SkyDomeActor:public DrawableActor
	{
	public:
		SkyDomeActor();

		virtual void buildPropertyMap();
		virtual void onMapLoadBegin(CoreBase::Map*){}
		virtual void onMapLoadEnd(CoreBase::Map*);
		osg::ref_ptr<osg::TextureCubeMap> getTextureCubeMap();
		void setSkyDomeType(QString type);
		QString getSkyDomeType();
		void resetRadius(int radius);
		int getRadius();
	protected:
		virtual void createDrawable();
		osg::ref_ptr<osg::TextureCubeMap> loadCubeMapTextures(const QString& tag);
		~SkyDomeActor();
	private:
		osg::ref_ptr<osg::TextureCubeMap>		_cubeMap;
		QString									_currentType;
		int										_skyRadius;
		CoreBase::Map*							_mainMap;
		QMap<QString,osg::Vec3>					_clearColorMap;
	};
}